home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 2.iso
/
STUTTGART
/
TEMP
/
GNU
/
bison
/
MfcalcRulf
< prev
next >
Wrap
Text File
|
1995-06-28
|
1KB
|
40 lines
Mfcalc Rules
Previous: <Mfcalc Decl=>MfcalcDecm> * Next: <Mfcalc Symtab=>MfcalcSymu> * Up: <Multi-function Calc=>Multifunct>
#Wrap on
{fH4}Grammar Rules for {fCode}mfcalc{f}{f}
Here are the grammar rules for the multi-function calculator.
Most of them are copied directly from {fCode}calc{f}; three rules,
those which mention {fCode}VAR{f} or {fCode}FNCT{f}, are new.
#Wrap off
#fCode
input: \/\* empty \*\/
| input line
;
line:
'\\n'
| exp '\\n' \{ printf ("\\t%.10g\\n", $1); \}
| error '\\n' \{ yyerrok; \}
;
exp: NUM \{ $$ = $1; \}
| VAR \{ $$ = $1->value.var; \}
| VAR '=' exp \{ $$ = $3; $1->value.var = $3; \}
| FNCT '(' exp ')' \{ $$ = (\*($1->value.fnctptr))($3); \}
| exp '+' exp \{ $$ = $1 + $3; \}
| exp '-' exp \{ $$ = $1 - $3; \}
| exp '\*' exp \{ $$ = $1 \* $3; \}
| exp '\/' exp \{ $$ = $1 \/ $3; \}
| '-' exp %prec NEG \{ $$ = -$2; \}
| exp '^' exp \{ $$ = pow ($1, $3); \}
| '(' exp ')' \{ $$ = $2; \}
;
\/\* End of grammar \*\/
%%
#f
#Wrap on